// pages/operation/class/addTempStudent/index.js
import { ClassModel } from "../../../../api/api-work/classModel.js"
const classModel = new ClassModel()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    orderNo: "",
    idsStr: "",
    cofId: "",
    classDate: "",
    classIdM: "", // 添加学员时的班级id
    tid: "",

    pageNum: 1,
    total: 0,
    tableDatas: [],
    triggered: false,
    loadStatus: ""
  },

  /**
   * 生命周期函数--监听页面加载
   */
  async onLoad(options) {
    this.setData({
      orderNo: options.orderNo,
      idsStr: options.idsStr,
      cofId: options.cofId,
      classDate: options.classDate,
      classIdM: options.classIdM,
      tid: options.tid
    })
    await this.getStudentCourseList()
  },

  // getStudentCourseListApi
  async getStudentCourseList() {
    classModel.getStudentCourseListApi({ orderNo: this.data.orderNo, idsStr: this.data.idsStr, classIdM: this.data.classIdM, pageNum: this.data.pageNum, pageSize: 15 }).then(res => {
      if (res.rows.length > 0) {
        res.rows.forEach(item => {
          item['isChecked'] = false;
          item['disabled'] = false;
        })
      }
      let rows = this.data.tableDatas;
      rows.push(...res.rows);
      this.setData({
        tableDatas: rows,
        total: res.total
      })

      if (this.data.total == 0) {
        this.setData({
          // 无数据
          loadStatus: ""
        })
      }
      else if (this.data.tableDatas.length < this.data.total) {
        // 还有数据
        this.setData({
          // 加载更多
          loadStatus: "loadmore"
        })
      }
      else {
        // 没有数据了
        this.setData({
          // 加载更多
          loadStatus: "nomore"
        })
      }
    })
  },

  getMoreDatas() {
    if (this.data.loadStatus === 'nomore') {
      // 没有更多了
      return;
    }
    this.setData({
      pageNum: this.data.pageNum + 1,
      loadStatus: "loading" // 加载中
    })
    this.getStudentCourseList();
  },
  refreshMoreDatas() {
    this.setData({
      triggered: false,
      pageNum: 1,
      tableDatas: []
    })
    this.getStudentCourseList();
  },

  // 
  clickData(e) {
    // 逻辑自己屡去 （同一用户只能选择一个课程，选中一个另一个禁用）
    if (e.currentTarget.dataset.query.disabled) {
      return;
    }
    this.data.tableDatas.forEach(item => {
      if (e.currentTarget.dataset.query.studentId == item.studentId) {
        if (e.currentTarget.dataset.query.courseId == item.courseId) {
          item.isChecked = !item.isChecked;
        }
        else {
          item.disabled = !e.currentTarget.dataset.query.isChecked;
        }
      }
    })
    this.setData({
      tableDatas: this.data.tableDatas
    })
  },
  // 选中
  onChangeCheckBox(e) { },

  // 确定添加
  confirmAdd() {

    if (this.data.tableDatas.length == 0) {
      return;
    }
    else {
      if (this.data.classIdM == undefined || this.data.classIdM == "") {
        // 添加临时学员
        let arr = [];
        let arrIds = [];
        this.data.tableDatas.forEach(item => {
          if (item.isChecked) {
            const obj = {
              id: item.studentId,
              courseId: item.courseId
            }
            arr.push(obj)
            arrIds.push(item.studentId)
          }
        })
        classModel.addStudentApi({ classDate: `${this.data.classDate} 00:00:00`, cofId: this.data.cofId, temp: 0, orderNo: this.data.orderNo, ids: arr }).then(res => {
          classModel.saveOrderUpdateApi({ tid: this.data.tid, type: 2, studentIds: arrIds }).then(resp => {
            wx.navigateBack()
          })

        })
      }
      else {
        // 添加学员
        let arr = [];
        this.data.tableDatas.forEach(item => {
          if (item.isChecked) {
            item['classId'] = this.data.classIdM;
            item['consumeCourseId'] = item.courseId;
            arr.push(item)
          }
        })
        classModel.addStudentToClassApi(arr).then(res => {
          wx.navigateBack()
        })
      }


    }


  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})